home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / lang / amigatalk.lha / intuition / Requester.st < prev    next >
Text File  |  2002-01-16  |  6KB  |  177 lines

  1. "--------------------------------------------------------------------"
  2. " Requester Class implements control of Amiga Requesters, except for "
  3. " displaying them, which is done inside the Window class.            "
  4. " There are simpler Requester methods in class AmigaTalk & Window,   "
  5. " but they do NOT have as much flexibility as this Class.            "
  6. "--------------------------------------------------------------------"
  7.  
  8. Class Requester :Glyph ! private !
  9. [
  10.    "reqValuesArray has the following fields:
  11.        LeftEdge, TopEdge, Width, Height, RelLeft, RelTop,
  12.        ReqGadget, ReqBorder, ReqText, Flags BackFill, ImageBMap,
  13.        ReqImage, ReqLayer:
  14.    "
  15.    initialize: reqValuesArray
  16.       <primitive 185 3 0  (reqValuesArray at: 1)  private>.
  17.       <primitive 185 3 1  (reqValuesArray at: 2)  private>.
  18.       <primitive 185 3 2  (reqValuesArray at: 3)  private>.
  19.       <primitive 185 3 3  (reqValuesArray at: 4)  private>.
  20.       <primitive 185 3 4  (reqValuesArray at: 5)  private>.
  21.       <primitive 185 3 5  (reqValuesArray at: 6)  private>.
  22.       <primitive 185 3 9  (reqValuesArray at: 7)  private>.
  23.       <primitive 185 3 10 (reqValuesArray at: 8)  private>.
  24.       <primitive 185 3 8  (reqValuesArray at: 9)  private>.
  25.       <primitive 185 3 6  (reqValuesArray at: 10) private>.
  26.       <primitive 185 3 7  (reqValuesArray at: 11) private>.
  27.       <primitive 185 3 11 (reqValuesArray at: 12) private>.
  28.       <primitive 185 3 12 (reqValuesArray at: 13) private>.
  29.       <primitive 185 3 13 (reqValuesArray at: 14) private>.
  30.       ^ self
  31. |
  32.    getStartPoint
  33.       ^ <primitive 185 2 0 private> @ <primitive 185 2 1 private>
  34. |
  35.    setStartPoint: newPoint
  36.       <primitive 185 3 0 (newPoint x) private>.
  37.       <primitive 185 3 1 (newPoint y) private>
  38. |
  39.    getReqSize
  40.       ^ <primitive 185 2 2 private> @ <primitive 185 2 3 private>
  41. |
  42.    setReqSize: sizePoint
  43.       <primitive 185 3 2 (sizePoint x) private>.
  44.       <primitive 185 3 3 (sizePoint y) private>
  45. |
  46.    getRelativePoint
  47.       ^ <primitive 185 2 4 private> @ <primitive 185 2 5 private>
  48. |
  49.    setRelativePoint: newRelPoint
  50.       <primitive 185 3 4 (newRelPoint x) private>.
  51.       <primitive 185 3 5 (newRelPoint y) private>
  52. |
  53.    getFlags
  54.       ^ <primitive 185 2 6 private>
  55. |
  56.    setFlags: newFlags
  57.       <primitive 185 3 6 newFlags private>
  58. |
  59.    getBackFill
  60.       ^ <primitive 185 2 7 private>
  61. |
  62.    setBackFill: newBackFill
  63.       <primitive 185 3 7 newBackFill private>
  64. |
  65.    getReqText
  66.       ^ <primitive 185 2 8 private>
  67. |
  68.    setReqText: newReqText
  69.       <primitive 185 3 8 newReqText private>
  70. |
  71.    getReqBorder
  72.       ^ <primitive 185 2 10 private>
  73. |
  74.    setReqBorder: newReqBorder
  75.       <primitive 185 3 10 newReqBorder private>
  76. |
  77.    getReqGadget
  78.       ^ <primitive 185 2 9 private>
  79. |
  80.    setReqGadget: newReqGadget
  81.       <primitive 185 3 9 newReqGadget private>
  82. |
  83.    getReqBitMap
  84.       ^ <primitive 185 2 11 private>
  85. |
  86.    getReqImage
  87.       ^ <primitive 185 2 12 private>
  88. |
  89.    getReqLayer
  90.       ^ <primitive 185 2 13 private>
  91. |
  92.    setReqBitMap: newBitMapObject
  93.       <primitive 185 3 11 newBitMapObject private>
  94. |
  95.    setReqImage: newImageObject
  96.       <primitive 185 3 12 newImageObject private>
  97. |
  98.    setReqLayer: newLayerObject
  99.       <primitive 185 3 13 newLayerObject private>
  100. |
  101.    dispose
  102.       <primitive 185 0 private>.
  103.       ^ nil
  104. |
  105.    new
  106.       private <- <primitive 185 1>.
  107.       ^ self
  108. ]
  109.  
  110. " ------------------------------------------------------------------- "
  111. " RequesterFlags Class is a Singleton class that allows the user      "
  112. " to reference Requester flags without knowing their hexadecimal      "
  113. " values.                                                             "
  114. ""
  115. " The User does NOT need to create one of these, since Intuition      "
  116. " Class will instantiate the only needed instance of this Class.  See "
  117. " the SetupIntuition.st source file for the method(s) that help the   "
  118. " User with this Class.                                               "
  119. ""
  120. " ALL singleton classes MUST contain the following:                   "
  121. ""
  122. "   the methods:  isSingleton AND privateSetup     AND                "
  123. "                 uniqueInstance Class instance variable.             "
  124. " ------------------------------------------------------------------- "
  125.  
  126. Class RequesterFlags :Dictionary ! uniqueInstance !
  127. [
  128.    isSingleton
  129.      ^ true  
  130. |  
  131.    privateNew ! newinstance !
  132.      newinstance <- super new.
  133.  
  134.      ^ newinstance
  135. |
  136.    new
  137.      ^ self privateSetup
  138. |
  139.    privateSetup
  140.      (uniqueInstance isNil)
  141.        ifTrue: [uniqueInstance <- self privateNew.
  142.  
  143.                 " Flags set by the application program: "
  144.  
  145.                 self at: #POINTREL      put: 1.  " if POINTREL set, TopLeft is relative
  146.                                                  * to pointer for DMRequester, relative
  147.                                                  * to window center for Request().
  148.                                                  "
  149.                 self at: #PREDRAWN    put: 2.  " set if Requester.ImageBMap points
  150.                                                  * to predrawn Requester imagery 
  151.                                                  "
  152.                 self at: #NOISYREQ      put: 4.  " if you don't want req'r to filter input "
  153.  
  154.                 self at: #SIMPLEREQ     put: 16. " to use SIMPLEREFRESH layer (recommended) "
  155.  
  156.                 self at: #USEREQIMAGE   put: 32. " render linked list ReqImage after BackFill
  157.                                              * but before gadgets and text
  158.                                              "
  159.                 " do not bother filling requester with Requester.BackFill pen: "
  160.                 self at: #NOREQBACKFILL put: 16r40.
  161.  
  162.                 " FLAGS SET BY INTUITION: "
  163.                 " part of one of the Gadgets was offwindow: "
  164.                 self at: #REQOFFWINDOW  put: 16r1000. 
  165.                 
  166.                 self at: #REQACTIVE     put: 16r2000. " this requester is active "
  167.                 
  168.                 " (unused) this requester caused by system: "
  169.                 self at: #SYSREQUEST    put: 16r4000. 
  170.                 
  171.                 " this Requester stops a Refresh broadcast: "
  172.                 self at: #DEFERREFRESH  put: 16r8000. 
  173.                ].
  174.                
  175.      ^ self    "or ^ uniqueInstance??"
  176. ]
  177.